 /**
 * 逻辑、功能相关描述: <br>
 *
 * @author 付湘辉  <br>
 * 编写日期：2008-12-24  <br>
 */
package com.ce.pms.charge.dao;

import java.util.Date;
import java.util.List;
import com.ce.pms.base.dao.IPmsBaseDao;
import com.ce.pms.charge.model.ChargeRecordDO;

/**
 * 	名称: com.ce.pms.charge.dao.IChargeRecordDao <br>
 *  非常规费用记录Dao
 *
 * @author  付湘辉(开发) ，马思权(设计)  <br>
 * Created on： 2008-12-24 <br>
 * @author <br>
 * update on： <br>
 * why: <br>
 */
public interface IChargeRecordDao extends IPmsBaseDao<ChargeRecordDO> {

	/**
	 * 功能描述:根据多个房屋ID查询费用记录  <br>
	 * @param houseIds 房屋ID逗号拼接字符串 如：1,2,3
	 * @return List<ChargeRecordDO>
	 *
	 * Create author:付湘辉 <br>
	 * Create on:2008-12-24  <br>
	 * Edit author:  <br>
	 * Edit on:    <br>
	 * Why:     <br>
	 */
	public List<ChargeRecordDO> getUnHandleChargeRecords(String houseIds);

	/**
	 * 功能描述:删除未处理的费用记录<br>
	 * @param bizModule
	 * @param bizType
	 * @param bizId<br>
	 * Create author:罗军林<br>
	 * Create on:2008-12-25<br>
	 * Edit author:<br>
	 * Edit on:<br>
	 * Why:<br>
	 */
	public Boolean deleteChargeRecordByBiz(String bizModule,String bizType,Long bizId);

	/**
	 * 功能描述:更新费用记录的处理状态为已处理  <br>
	 * @param chargeRecordIds 费用记录ID集
	 * @param operator 操作者ID
	 * @param modifyDate 修改日期
	 *
	 * Create author:付湘辉 <br>
	 * Create on:2008-12-31  <br>
	 * Edit author:  <br>
	 * Edit on:    <br>
	 * Why:     <br>
	 * @param operator TODO
	 * @param modifyDate TODO
	 */
	public void updateChargeRecordHandleStatusToYes(List<Long> chargeRecordIds, Long operator, Date modifyDate);

	/**
	 * 功能描述: 查询指定业务模块，类型，ID的费用记录 <br>
	 * @param bizModule
	 * @param bizType
	 * @param bizId
	 * @return
	 *
	 * Create author:付湘辉 <br>
	 * Create on:2009-1-5  <br>
	 * Edit author:  <br>
	 * Edit on:    <br>
	 * Why:     <br>
	 */
	@SuppressWarnings("unchecked")
	public ChargeRecordDO getChargeRecordByBiz(String bizModule,String bizType,Long bizId);

	/**
	 * 功能描述: 查询指定业务模块，业务类型，业务ID的费用记录 <br>
	 * @param bizModule 业务模块
	 * @param bizType 业务类型
	 * @param bizIds 业务ID接接而成的一个字符串，以逗号分隔
	 * @return
	 *
	 * Create author:付湘辉 <br>
	 * Create on:2009-1-5  <br>
	 * Edit author:  <br>
	 * Edit on:    <br>
	 * Why:     <br>
	 */
	public List<ChargeRecordDO> queryChargeRecordList(String bizModule,String bizType,String bizIdString);

	/**
	 * 功能描述: 检查某项费用的所有未入账费用记录是否都已经处理 <br>
	 * @param bizModule 业务模块
	 * @param bizType 业务类型
	 * @param bizId 业务ID
	 * @return
	 *
	 * Create author:付湘辉 <br>
	 * Create on:2009-1-7  <br>
	 * Edit author:  <br>
	 * Edit on:    <br>
	 * Why:     <br>
	 */
	public  Boolean  checkFinishHandleYn (String bizModule, String bizType, List<Long> bizIds);

	/**
	 * 功能描述: 检查某项费用的所有未入账费用记录是否都未处理 <br>
	 * 只要有一项已经处理，都将返回false
	 * @param bizModule 业务模块
	 * @param bizType 业务类型
	 * @param bizId 业务ID
	 * @return
	 *
	 * Create author:付湘辉 <br>
	 * Create on:2009-1-7  <br>
	 * Edit author:  <br>
	 * Edit on:    <br>
	 * Why:     <br>
	 */
	public  Boolean  checkFinishIsHandle (String bizModule, String bizType, List<Long> bizIds);
}
